import api from '../../apis/index.js'

/**
 * 判断是否是在微信里面
 */
export function isWechat() {
	// #ifdef H5
	return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger";
	// #endif
	return false
}

export function jsApiCall(data, callback_succ_func, callback_error_func) {
	//使用原生的，避免初始化appid问题  
	WeixinJSBridge.invoke('getBrandWCPayRequest', {
			appId: data['appId'],
			timeStamp: data['timeStamp'],
			nonceStr: data['nonceStr'], // 支付签名随机串，不长于 32 位  
			package: data['package'], // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）  
			signType: data['signType'], // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'  
			paySign: data['paySign'], // 支付签名  
		},
		function(res) {
			var msg = res.err_msg ? res.err_msg : res.errMsg;
			//WeixinJSBridge.log(msg);  
			switch (msg) {
				case 'get_brand_wcpay_request:ok': //支付成功时  
					if (callback_succ_func) {
						callback_succ_func(res);
					}
					break;
				default: //支付失败时  
					WeixinJSBridge.log('支付失败!' + msg + ',请返回重试.');
					if (callback_error_func) {
						callback_error_func({
							msg: msg
						});
					}
					break;
			}
		})
}

export function payment(data, callback_succ_func, callback_error_func) {
	if (!isWechat()) {
		return;
	}
	if (typeof WeixinJSBridge == "undefined") {
		if (document.addEventListener) {
			document.addEventListener('WeixinJSBridgeReady', this.jsApiCall, false);
		} else if (document.attachEvent) {
			document.attachEvent('WeixinJSBridgeReady', this.jsApiCall);
			document.attachEvent('onWeixinJSBridgeReady', this.jsApiCall);
		}
	} else {
		this.jsApiCall(data, callback_succ_func, callback_error_func);
	}
}

export function shareSuccess(data,shareData){
	var jweixin = require('../../plugins/jweixin-module/index.js')
	jweixin.config({
		debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。  
		appId: data.appid, // 必填，公众号的唯一标识  
		timestamp: data.timestamp, // 必填，生成签名的时间戳  
		nonceStr: data.noncestr, // 必填，生成签名的随机串  
		signature: data.signature, // 必填，签名，见附录1  
		surl: data.surl, //自己添加的，debug为true的时候可以网页打印出对应的URL是否正确  
		jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"]
	});
	
	jweixin.ready(function() {
		//自定义“分享给朋友”及“分享到QQ”按钮的分享内容（1.4.0）  
		jweixin.updateAppMessageShareData({
			title: shareData.title, // 分享标题
			link: shareData.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
			imgUrl: shareData.imgUrl, // 分享图标
			desc: shareData.desc, // 分享描述
			success: function() {
				// 设置成功
			},
		});
		//自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容（1.4.0）  
		jweixin.updateTimelineShareData({
			title: shareData.title, // 分享标题
			link: shareData.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
			imgUrl: shareData.imgUrl, // 分享图标
			success: function() {
				// 设置成功
			}
		});
	
	});
}

export function initShare(shareData) {
	// #ifdef H5
	// var jweixin = require('jweixin-module') //npm安装的引用
	var surl = (window.location.href.split('#')[0]); //据说可以解决URL中带参数的问题，前台用的js编码，后台php解码
	api.home.wechatShare({uri:surl}).then(res => {
		shareSuccess(res,shareData)
	}).catch(err => {
		console.log('request fail', err);
	})
	// #endif
}
